﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Web.UI.WebControls;
using BLLTZS.Funcionalidad;
using System.IO;

namespace TZS
{
    public class FormGenerico : System.Web.UI.Page
    {
        public string Bumeran
        {
            get
            {
                string url = string.Empty;

                if (ConfigurationManager.AppSettings["Bumeran"] != null)
                    url = ConfigurationManager.AppSettings["Bumeran"];

                return url;
            }
        }

        public string URLParaCV
        {
            get
            {
                string url = string.Empty;

                if (ConfigurationManager.AppSettings["URLParaCV"] != null)
                    url = ConfigurationManager.AppSettings["URLParaCV"];

                return url;
            }
        }

        public string URLParaDNI
        {
            get
            {
                string url = string.Empty;

                if (ConfigurationManager.AppSettings["URLParaDNI"] != null)
                    url = ConfigurationManager.AppSettings["URLParaDNI"];

                return url;
            }
        }

        public string URLParaMostrarDNI
        {
            get
            {
                string url = string.Empty;

                if (ConfigurationManager.AppSettings["URLParaMostrarDNI"] != null)
                    url = ConfigurationManager.AppSettings["URLParaMostrarDNI"];

                return url;
            }
        }

        public List<int> LocalidadesSeleccionadas 
        {
            get
            {
                if (Session["LocalidadesSeleccionadas"] == null)
                    Session["LocalidadesSeleccionadas"] = new List<int>();

                return Session["LocalidadesSeleccionadas"] as List<int>;
            }
            set { Session["LocalidadesSeleccionadas"] = value; }
        }

        public List<Ambitos> AmbitosSeleccionados 
        {
            get
            {
                if (Session["AmbitosSeleccionados"] == null)
                    Session["AmbitosSeleccionados"] = new List<Ambitos>();

                return Session["AmbitosSeleccionados"] as List<Ambitos>;
            }
            set { Session["AmbitosSeleccionados"] = value; }
        }

        public List<int> PuestosSeleccionados 
        {
            get
            {
                if (Session["PuestosSeleccionados"] == null)
                    Session["PuestosSeleccionados"] = new List<int>();

                return Session["PuestosSeleccionados"] as List<int>;
            }
            set { Session["PuestosSeleccionados"] = value; }
        }

        public string ParametroNombreUsuario
        {
            get { return Session["ParametroNombreUsuario"].ToString(); }
            set { Session["ParametroNombreUsuario"] = value; }
        }


        public static void SetearVisibilidad(WebControl control, bool visible)
        {
            if (visible)
                control.Style[@"display"] = @"";
            else
                control.Style[@"display"] = @"none";
        }

        public static void SetearVisibilidad(List<WebControl> controles, bool visible)
        {
            for (int i = 0; i < controles.Count; i++)
                SetearVisibilidad(controles[i], visible);
        }

        public static string FiltrarTexto(string texto, string caracteres, bool permitirEspacio)
        {
            string resultado = string.Empty;

            foreach (char item in texto)
            {
                string pija = item.ToString();

                if(caracteres.Contains(pija) || (permitirEspacio && item == 32))
                    resultado += pija;
            }

            return resultado;
        }

        public static bool ValidarTexto(string texto, string validador)
        {
            foreach (char item in texto)
                if (!validador.Contains(item.ToString()))
                    return false;

            return true;
        }

        protected string GenerarNombreArchivoValido(string nombreArchivo, string formato, string urlSector)
        {
            int contador = 0;
            string nombreGenerado = string.Empty;
            string pathCompleto = string.Empty;

            do
            {
                contador++;
                nombreGenerado = nombreArchivo.Replace("." + formato, "");
                nombreGenerado += "-" + contador.ToString() + "." + formato;
                pathCompleto = MapPath(string.Format(urlSector, nombreGenerado));
            } while (File.Exists(pathCompleto));

            return nombreGenerado;
        }
    }
}